1. Technical Field
The present disclosure relates to a cache memory controller.
2. Discussion of the Related Art
Data caching is a technique which exploits a property of data access known as temporal locality. Temporal locality means that data that has been accessed recently is the data most likely to be accessed again in the near future. Data caching involves storing or caching a copy of recently accessed data in a cache memory that is accessible more quickly and efficiently than the primary memory from which the data was originally obtained. If the same data is requested again in the future, the cached copy of the data can be retrieved from the cache memory rather than retrieving the original data from the primary memory. As the cache memory can be accessed more quickly than the primary memory, this can increase the overall speed of data retrieval.
Spatial locality may also be exploited by data caching. This is the property that data stored in a memory location close to a previously requested address is likely to be used.
Some systems employ a technique known as data pre-fetching in which data may be retrieved, possibly speculatively, before it is actually needed in order to increase the overall speed of memory access. Data pre-fetches may be regarded as being speculative in the sense that the pre-fetched data may not eventually be required. Pre-fetching may allow the cache to extend the range of the spatial locality being exploited beyond the intrinsic size of the cache line.
The pre-fetched data is stored in the cache and is treated as cached data. In this way, when the pre-fetched data is actually requested, the cache will be checked to determine whether the requested data is located there.
In some systems, an interconnect may be provided between the cache memory and the primary memory. If the interconnect is limited or shared with the number of resources, pre-fetch requests may contribute to latency to this interconnect. This may result in the latency in the overall system being increased.